package com.ylbh.modules.shoptemplate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylbh.common.pojo.shoptemplate.dto.CommodityBankDTO;
import com.ylbh.common.pojo.shoptemplate.vo.ShopClassVO;
import com.ylbh.common.utils.PageDTO;
import com.ylbh.common.utils.PageUtils;
import com.ylbh.modules.shoptemplate.entity.ShoppingShopTemplate;

import java.util.List;
import java.util.Map;

/**
 * 店铺模版
 *
 * @author czx
 * @date 2019-12-20 15:38:32
 */
public interface ShoppingShopTemplateService extends IService<ShoppingShopTemplate> {

    /**
     * 店铺模板列表
     * @param pageDTO
     * @return
     */
    PageUtils queryShopTemplateList(PageDTO pageDTO);

    /**
     * 删除店铺模板
     * @param asList
     */
    void removeShopTemplateById(List<Long> asList);

    /**
     * 获取店铺模板下的分类列表
     * @param pageDTO
     * @return
     */
    PageUtils getShopClassListById(PageDTO pageDTO);

    /**
     * 获取店铺模板下的分类详情
     * @param id
     * @return
     */
    ShopClassVO getShopClassDetailsById(Long id);

    /**
     * 修改店铺模板下的分类详情
     * @param shopClassVO
     */
    void modifyShopClassDetailsById(ShopClassVO shopClassVO);

    /**
     * 新增店铺模板下的分类
     * @param shopClassVO
     */
    void addShopClass(ShopClassVO shopClassVO);

    /**
     * 删除店铺模板下的分类
     * @param asList
     */
    void removeShopClassById(List<Long> asList);

    /**
     * 新增店铺模板
     * @param shoppingShopTemplate
     */
    void addShopTemplate(ShoppingShopTemplate shoppingShopTemplate);

    /**
     * 店铺模板详情
     * @param id
     * @return
     */
    ShoppingShopTemplate getShopTemplateInfoById(Long id);

    /**
     * 修改店铺模板
     * @param shoppingShopTemplate
     */
    void modifyShopTemplateById(ShoppingShopTemplate shoppingShopTemplate);

    /**
     * 商品库商品
     * @param commodityBankDTO
     * @return
     */
    PageUtils queryCommodityBank(CommodityBankDTO commodityBankDTO);

    /**
     * 添加商品到模板分类
     * @param id
     * @param goodsId
     */
    void addShopClassGoods(String id, List<String> goodsId);

    /**
     *
     * @param commodityBankDTO
     * @return
     */
    PageUtils queryShopClassGoodsList(CommodityBankDTO commodityBankDTO);

    /**
     *
     * @param id
     * @param goodsIds
     */
    void removeShopClassGoodsByShopIdAndGoodsId(String id, List<String> goodsIds);

    /**
     * 店铺模板启用
     * @param id
     * @param type
     */
    void modifyShopTemplateStateById(String id, Integer type);
}

